The present invention is directed to a method and system for regulating the rate of traffic in a telecommunications network using fractional tokens to allocate traffic rates.
The increased use of telecommunications networks for the transmission of voice and data has resulted in drastically greater amounts of network traffic and increased demand for methods to regulate this increased traffic level. Regulation and control of this network traffic is vital to the stability and efficiency of the network infrastructure. Failure to regulate this traffic can result in some components of the network being overwhelmed by requests for service while other components are experiencing very low levels of use. In addition, some components may fail completely due to overloading, or network traffic delays through a few components could gridlock the entire network.
A network infrastructure that may be subject to these types of traffic considerations is illustrated in FIG. 1. In this system, a network traffic destination component 101 receives network traffic through network 102 from a variety of network traffic source components 103, 104, and 105. Specifically, destination component 101 is a segmentation directory, and traffic source components 103, 104, and 105 are ATandT 4ESS(trademark) switches. When one of the 4ESS(trademark) switches receives a telephone call connection, it sends a query message to segmentation directory (SD) 101 requesting information on how to route the call to its intended destination. Segmentation directory 101 is able to service a certain number of requests per second. When the number of requests exceeds this number, segmentation directory 101 becomes overloaded and a method to regulate the amount of traffic being received must be instituted.
One method that has been used to regulate network traffic is through the use of tokens to allocate message rates to the sources of the network traffic. In this method each traffic source maintains a bank of tokens so that whenever the traffic source has a network message to send, it must first check to see that a token is available for the message. If a token is available, the message is sent and a token is removed from the bank. If there are no tokens in the bank the traffic source must either hold the message in a queue until a token is available or discard the message unsent. Tokens are periodically added to the bank based on the desired message rate.
The desired traffic level is selected as the number of messages per second that can be handled or received by the network traffic destination, in this example the number of requests per second that segmentation directory 101 can service without overloading. That desired traffic level is then apportioned among the sources of network traffic as a number of network messages that can be sent by each traffic source per a specified control interval, for example one second. Each traffic source then typically divides the number value assigned by a predetermined number of subintervals that the control interval has been divided into, in this example 10 subintervals of 0.1 second. The resulting number is the number of tokens that are added to the bank at the beginning of each subinterval. However, present methods increment and decrement the token bank by whole numbers only and divide the tokens equally between subintervals. Any fractional amount of the originally assigned traffic level is discarded and any left over whole tokens are added in arbitrarily in one of the subintervals, typically the first subinterval. This results in a number of inefficiencies. In this example if the traffic level assigned to the traffic source is 6.5, the 0.5 fraction is rounded off. Then since 6 is not evenly divisible by 10, all 6 tokens are added in the first subinterval, resulting in a token sequence over the subintervals of 6, 0, 0, 0, 0, 0, 0, 0, 0, 0. This results in a traffic pattern that contains bursts of activity followed by periods of relative inactivity, as well as sacrificing 1 network message every 2 seconds, resulting in a traffic level lower than the desired maximum traffic level for the destination. A similarly lopsided token sequence results from an assigned traffic level of 15, i.e. 6, 1, 1, 1, 1, 1, 1, 1, 1, 1.
The present invention is directed toward a method of allocating bandwidth for network traffic by using fractional token values.
The present method adds tokens to the token bank in fractional increments and when a traffic source checks for an available token to obtain permission to send a message, permission is granted if the balance of the token bank is greater than or equal to one. This fractional token method allows the tokens to be distributed equally among the subintervals over the entire time period regardless of whether the desired maximum traffic level is evenly divisible by the number of subintervals. The use of fractional tokens eliminates the problem of bursts of activity followed by periods of relative inactivity.